/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelos;

import entidades.Institucion;
import interfaz.Entidad;
import interfaz.Modelo;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
import manejadores.ManejadorDeInstitucion;


/**
 *
 * @author Snailin
 */
public class ModeloDeInstitucion extends AbstractTableModel implements Modelo{

        private ManejadorDeInstitucion manejadorDeInstitucion=null;
        private ArrayList<Institucion>instituciones=null;
        private String [] encabezado=null;
        private Institucion institucion=null;


               public ModeloDeInstitucion(){
            manejadorDeInstitucion=ManejadorDeInstitucion.getInstancia();
            instituciones=manejadorDeInstitucion.getInstituciones();
            encabezado=new String[]{"ID","Nombre","Representante","Telefono","Direccion"};

        }



@Override
    public String getColumnName(int posicion){
        return encabezado[posicion];
    }

    public int getRowCount() {
        return instituciones.size();
    }

    public int getColumnCount() {
      return encabezado.length;
    }

    public Object getValueAt(int fila, int columna) {
        institucion=instituciones.get(fila);
        String retorno="";
        switch(columna){
            case 0:
                retorno=String.valueOf(institucion.getIdInstitucion());
              break;

            case 1:
                retorno=institucion.getNombre();
              break;

               case 2:
                retorno=institucion.getRepresetante();
              break;

               case 3:
                retorno=institucion.getTelefono();
              break;


               case 4:
                retorno=institucion.getDireccion();
              break;

          }

        return retorno;

    }

    @Override
    public void setValueAt(Object valor, int fila, int columna) {
           institucion=instituciones.get(fila);

        switch(columna){
            case 0:
                institucion.setIdInstitucion((Integer)(valor));
              break;

            case 1:
                institucion.setNombre((String)(valor));
              break;

               case 2:
                institucion.setRepresetante((String)(valor));
              break;

               case 3:
               institucion.setTelefono((String)(valor));
              break;


               case 4:
               institucion.setDireccion((String)(valor));
              break;

          }

    }







    public int agregar(Entidad institucion) {
           int fila =0;
        fila=manejadorDeInstitucion.agregar(institucion);
        instituciones=manejadorDeInstitucion.getInstituciones();
        fireTableStructureChanged();
        fireTableDataChanged();

        return fila;
    }

    public int modificar(Entidad institucion, int id) {
       int fila=0;
           fila=manejadorDeInstitucion.modificar(institucion,id);
        instituciones=manejadorDeInstitucion.getInstituciones();
        fireTableStructureChanged();
        fireTableDataChanged();
        return fila;
    }

    public int eliminar(int id) {
         int fila =0;
        fila=manejadorDeInstitucion.eliminar(id);
        fireTableRowsDeleted(fila, fila);
        instituciones=manejadorDeInstitucion.getInstituciones();
        fireTableDataChanged();
        return fila;
    }

    }
 


